/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufrpe.bsi.dao;

import br.ufrpe.bsi.bean.Usuario;
import com.mysql.jdbc.PreparedStatement;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 *
 * @author bruna
 */
public class UsuarioDAO extends Conexao{
    public UsuarioDAO(){
        super();
    }
    public void inserir(Usuario usuario) throws ClassNotFoundException,SQLException{
        String sql = "INSERT INTO usuario(login,senha,nomeUsuario,email,telefone) VALUES (?,?,?,?,?)";
        PreparedStatement ps = (PreparedStatement) getPreparedStatement(sql);
        ps.setString(1, usuario.getLogin());
        ps.setString(2,usuario.getSenha());
        ps.setString(3,usuario.getNomeUsuario());
        ps.setString(4, usuario.getEmail());
        ps.setString(5, usuario.getTelefone());
        ps.execute();//pensando em colocar return ps.execute(); 
        ps.close();      
    }
    
    public void editar(Usuario usuario) throws ClassNotFoundException, SQLException{
        String sql = "UPDATE usuario SET senha=?,nomeUsuario=?,telefone=?,email=? WHERE login=?";
        PreparedStatement ps = (PreparedStatement) getPreparedStatement(sql);
        ps.setString(1,usuario.getSenha());
        ps.setString(2,usuario.getNomeUsuario());
        ps.setString(3, usuario.getTelefone());
        ps.setString(4, usuario.getEmail());
        ps.setString(5, usuario.getLogin());  
        ps.execute();
        ps.close();       
    }
    
    public void excluir(String usuario) throws ClassNotFoundException, SQLException{
        String sql = "DELETE FROM usuario WHERE login=?";
        PreparedStatement ps = (PreparedStatement) getPreparedStatement(sql); 
        ps.setString(1, usuario);
        ps.execute();
    }
    
    public Usuario retornar(Usuario usuario) throws ClassNotFoundException, SQLException{
        String sql = "SELECT * FROM usuario WHERE login ='"+usuario.getLogin()+"' AND senha ='"+usuario.getSenha()+"'";      
        Statement st = (Statement) getCon().createStatement(); //problema: nao enxerga o executeQuery qnd usamos o getStatement()
        ResultSet rs = st.executeQuery(sql);
        rs.next();
        usuario.setSenha(rs.getString("senha"));
        usuario.setEmail(rs.getString("email"));
        usuario.setNomeUsuario(rs.getString("nomeUsuario"));
        usuario.setTelefone(rs.getString("telefone"));
        rs.close();
        return usuario;        
    }
    
    public Usuario retornar(String login) throws ClassNotFoundException, SQLException{
        String sql = "SELECT * FROM usuario WHERE login ='"+login+"'";
        Statement st = (Statement) getCon().createStatement(); //problema: nao enxerga o executeQuery qnd usamos o getStatement()
        ResultSet rs = st.executeQuery(sql);
        rs.next();
        Usuario usuario = new Usuario();
        usuario.setSenha(rs.getString("senha"));
        usuario.setEmail(rs.getString("email"));
        usuario.setNomeUsuario(rs.getString("nomeUsuario"));
        usuario.setTelefone(rs.getString("telefone"));
        usuario.setLogin(login);
        rs.close();
        return usuario;        
    }
}
